!!! Plošný model struktury A pro nelineární úlohu při zatížení ve směru osy x !!!

FINISH
/CLEAR

*ABBR,INPUT,'/INPUT,strukturaA_nonlinear_X,txt'    

*AFUN,RAD           
 PI=4*ATAN(1)        ! vypocet hodnoty PI
*AFUN,DEG             

!!!!!!!!!!!!!!!!!!!
!!! PREPROCESOR !!!
!!!!!!!!!!!!!!!!!!!

/PREP7
                  
!!! Vstupni parametry !!!
alfa=55					! uhel alfa	[°]			
H=10					! delka H [mm]
LH=1.25					! pomer L/H [-]				
p=0.75					! porozita [-]
Emod=200000				! modul pruznosti v tahu zakladniho materialu [MPa]
nu=0.3					! Poissonuv pomer zakladniho materialu [-]

pom_def=0.2				! konecna pomerna podelna deformace; kladna hodnota pro tah, zaporna pro tlak
ELSIZE=0.5				! velikost prvku [mm]
NSUBSTappl=25			! pocet substepu


SELTOL,1e-6				! automaticke nastaveni potrebnych parametru
L=LH*H
TH=1
p=1-p

!!! Urceni tloustky pri zadane porozite !!!
*AFUN,RAD  
alfa=alfa*PI/180	!rad

ODM111=-0.3125*LH**2*P*cos(alfa)
ODM11=0.25*LH**2*p*(cos(alfa))**2+ODM111

ODM121=0.25*LH**2*cos(alfa)-0.25*LH**2
ODM12=0.0625*LH**2*P*cos(3*alfa)+ODM121

ODM1=ODM11+ODM12

ODM21=0.5*LH*cos(alfa)-0.5*LH+0.25*cos(alfa)-0.25
ODM22=-0.5*LH*p*cos(alfa)+LH*p
ODM2=-0.5*LH*P*(cos(alfa))**2+ODM22+ODM21

ODM=1.4142135623731*sqrt(-(ODM1+ODM2)*(tan(0.5*alfa))**2)*cos(0.5*alfa)

cast1=LH*(sin(0.5*alfa))**2

cast2=(sin(0.5*alfa))**2

jmenovatel=(cos(alfa))**2+cos(alfa)-2

T=-(4*H*(cast1-ODM+cast2)*sin(alfa))/jmenovatel		! vysledna tloustka

*AFUN,DEG  
alfa=alfa*180/pi


!!! Definice elementu !!!
ET,1,PLANE183

!!! Definice materialu !!!
MP,EX,1,Emod
MP,PRXY,1,,nu

!!! Tvorba geometrie !!!
	
	!!! Referencni geometrie !!!
!K,10,H-L*cos(alfa),0,0
!K,20,H,L*sin(alfa),0
!K,30,0,L*sin(alfa),0

!L,10,20	$	L,20,30

	!!! Vnitrni geometrie !!!
K,1,H-L*cos(alfa)-T/(2*cos(90-alfa)),0,0
K,2,H-T/2*(cos(alfa/2)/sin(alfa/2)),L*sin(alfa)-T/2,0
K,3,0,L*sin(alfa)-T/2,0

L,1,2	$	L,2,3	

	!!! Vnejsi geometrie !!!
!K,11,H-L*cos(alfa)+T/(2*cos(90-alfa)),0,0
K,11,H-L*cos(alfa)+T/(2*tan(alfa/2)),T/2,0
K,22,H+T/2*(cos(alfa/2)/sin(alfa/2))-T/2*tan(90-alfa),L*sin(alfa),0
K,33,0,L*sin(alfa),0
K,111,H-L*cos(alfa),0,0
K,41,2*H-L*cos(alfa),T/2,0
K,44,2*H-L*cos(alfa),0,0

L,11,22	$	L,22,33	$	

L,1,111	$	L,111,44	$	L,44,41	$	L,41,11	$	L,3,33

!!! Vytvoreni plochy !!!
LSEL,ALL
AL,ALL

!!! Vytvoreni site !!!
ASEL,ALL
ESIZE,ELSIZE
AATT,1,,1
AMESH,ALL

!!! Okrajove podminky !!!
NSEL,S,LOC,Y,L*sin(alfa)				$	CP,1,UY,ALL	
NSEL,S,LOC,X,2*H-L*cos(alfa)			$	CP,2,UX,ALL		
NSEL,S,LOC,Y,0							$	D,ALL,UY,0	
NSEL,S,LOC,X,0							$	D,ALL,UX,0

ALLSEL,ALL

!!! Zatizeni !!!
NSEL,S,LOC,X,2*H-L*cos(alfa)
D,ALL,UX,pom_def*(2*H-L*cos(alfa))

ALLSEL,ALL


!!!!!!!!!!!!!!!!
!!! SOLUTION !!!
!!!!!!!!!!!!!!!!
	
/SOLU

ANTYPE,STATIC,NEW

NLGEOM,ON
AUTOTS,OFF    
NSUBST,NSUBSTappl    
OUTRES,ALL,ALL

SOLVE


!!!!!!!!!!!!!!!!!!!!!
!!! POSTPROCESSOR !!!
!!!!!!!!!!!!!!!!!!!!!

/POST1

!!!											!!!
!!! Zjisteni vysledku jednotlivych substepu !!!
!!!											!!!

*dim,UXDISP,array,NSUBSTappl
*dim,UYDISP,array,NSUBSTappl
*dim,X0,array,NSUBSTappl+1
*dim,Y0,array,NSUBSTappl+1
*dim,epsX,array,NSUBSTappl
*dim,epsY,array,NSUBSTappl
*dim,nuCALCxy,array,NSUBSTappl
*dim,S,array,NSUBSTappl
*dim,dsigma,array,NSUBSTappl
*dim,sigma_eng,array,NSUBSTappl
*dim,EcalcX,array,NSUBSTappl
*dim,vzdalenost,array,NSUBSTappl
*dim,kontrola,array,NSUBSTappl
*dim,FXsum,array,NSUBSTappl+1
*dim,FYsum,array,NSUBSTappl+1
*dim,FZsum,array,NSUBSTappl
*dim,epsX_total,array,NSUBSTappl
*dim,epsY_total,array,NSUBSTappl

X0(1,1)=2*H-L*cos(alfa)
Y0(1,1)=L*sin(alfa)
UXdisp_total=0
UYdisp_total=0

*DO,step,1,NSUBSTappl,1
	SET,,, ,,, ,step 
	
	!!! Zjisteni posuvu ve smeru x !!!
	NSEL,S,LOC,X,2*H-L*cos(alfa)	$	NSEL,R,LOC,Y,0	
	*GET,minnode1,NODE,0,NUM,MIN
	*GET,UXdisp(step,1),NODE,minnode1,U,X

	!!! Zjisteni posuvu ve smeru y !!!
	NSEL,S,LOC,X,0	$	NSEL,R,LOC,Y,L*sin(alfa)	
	*GET,minnode2,NODE,0,NUM,MIN
	*GET,UYdisp(step,1),NODE,minnode2,U,Y
	
	!!! Zjisteni posovu pro posouzeni dotyku ramecku !!!
	NSEL,S,LOC,Y,0	$	NSEL,R,LOC,X,H-L*cos(alfa)-T/(2*cos(90-alfa))
	*GET,minnode3,NODE,0,NUM,MIN
	*GET,vzdalenost(step,1),NODE,minnode3,U,X

	!!! Zjisteni pusobici sily !!!
	NSEL,S,LOC,X,2*H-L*cos(alfa)
	FSUM
	*GET,FXsum(step+1,1),FSUM,0,ITEM,FX    $  *GET,FYsum(step+1,1),FSUM,0,ITEM,FY      $  *GET,FZsum(step,1),FSUM,0,ITEM,FZ

	!!! Vypocet Poissonova pomeru !!!
	X0(step+1,1)=2*H-L*cos(alfa)+UXdisp(step,1)
	Y0(step+1,1)=L*sin(alfa)+UYdisp(step,1)
	
	epsX(step,1)=(X0(step+1,1)-X0(step,1))/X0(step,1)
	epsY(step,1)=(Y0(step+1,1)-Y0(step,1))/Y0(step,1)

	nuCALCxy(step,1)=-epsY(step,1)/epsX(step,1)

	!!! Urceni plochy bunek !!!
	S(step,1)=Y0(step,1)*TH

	!!! Vypocet E !!!
	dsigma(step,1)=(FXsum(step+1,1)-FXsum(step,1))/S(step,1)
	EcalcX(step,1)=abs(dsigma(step,1)/epsX(step,1))/Emod
		
	!!! Vypocet sigma pro porovnani s experimentem !!!
	sigma_eng(step,1)=abs((FXsum(step+1,1))/S(1,1))		

	!!! Kontrola dotyku ramecku !!!
	kontrola(step,1)=H-L*cos(alfa)-T/(2*cos(90-alfa))+vzdalenost(step,1)
	
	!!! Uprava matic Fsum !!!
	FYsum(step,1)=FYsum(step+1,1)
	FXsum(step,1)=FXsum(step+1,1)
	
	!!! Celkova pomerna deformace X !!!
	epsX_total(step,1)=UXdisp(step,1)/X0(1,1)

	!!! Celkova pomerna deformace Y !!!
	epsY_total(step,1)=UYdisp(step,1)/Y0(1,1)
	
*ENDDO	

!!! Uprava matice zatezne sily !!!
FYsum(NSUBSTappl+1,1)=0
FXsum(NSUBSTappl+1,1)=0


!!!					!!!
!!! Export vysledku !!!
!!!					!!!

*MWRITE,UXdisp,vysledky_UXdisp,txt
(2F14.10)

*MWRITE,UYdisp,vysledky_UYdisp,txt
(2F14.10)

*MWRITE,X0,vysledky_X0,txt
(2F14.10)

*MWRITE,Y0,vysledky_Y0,txt
(2F14.10)

*MWRITE,epsX,vysledky_epsX,txt
(2F14.10)

*MWRITE,epsY,vysledky_epsY,txt
(2F14.6)

*MWRITE,epsX_total,vysledky_epsX_total,txt
(2F14.10)

*MWRITE,epsY_total,vysledky_epsY_total,txt
(2F14.6)

*MWRITE,nuCALCxy,vysledky_nuCALCxy,txt
(2F14.4)

*MWRITE,S,vysledky_S,txt
(2F14.10)

*MWRITE,dsigma,vysledky_dsigma,txt
(2F14.10)

*MWRITE,sigma_eng,vysledky_sigma_eng,txt
(2F14.10)

*MWRITE,EcalcX,vysledky_EcalcX,txt
(2F15.8)

*MWRITE,kontrola,vysledky_kontrola,txt
(2F15.10)
